package mid.两个维度权衡问题;

import java.util.Arrays;
import java.util.Comparator;
import java.util.LinkedList;

/**
 * @author zhengTao
 * @version 1.0
 * @description: 根据身高重建队列
 * @date 2022/11/21 11:34
 */
public class Demo406 {
    public int[][] reconstructQueue(int[][] people) {
       //先根据升高进行降序排序(即数组的第一个数),如果升高相同，则按照第二个值升序排序
        Arrays.sort(people, (s0,s1)->{
            if(s0[0]==s1[0]) return  s0[1]-s1[1];
            return s1[0]-s0[0];
        });
        LinkedList<int[]> list =new LinkedList<>();
        for (int[] person : people) {
            //指定位置插入(person[1],表示插入的位置)
            list.add(person[1],person);
        }
        //返回数组
        return list.toArray(new int[people.length][2]);
    }
}
